package ar.edu.utn.frgp.Banco.actions;

//import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
//import java.util.List;
import ar.edu.utn.frgp.Banco.model.PlazoFijo;
import ar.edu.utn.frgp.Banco.service.BusinessException;
import ar.edu.utn.frgp.Banco.service.IRecursoService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import org.springframework.beans.factory.annotation.Autowired;

public class PlazoFijoAction extends ActionSupport implements
		ModelDriven<PlazoFijo> {

	private static final long serialVersionUID = 1L;

	private String msj;

	private PlazoFijo plazosfijos = new PlazoFijo();
	@Autowired
	private IRecursoService recursoService;

	@Override
	public String execute() {
		// System.out.println(plazosfijos.getId() + plazosfijos.getDni() );
		try {
			if (plazosfijos.getDni() == null || plazosfijos.getDni().isEmpty()) {
				setMsj("Numero Invalido");
			} else {
				Date fechavencimiento = addDays(plazosfijos.getFechaalta(),
						plazosfijos.getTiempo());
				plazosfijos.setFechavencimiento(fechavencimiento);

				int interes = SumarInteres(plazosfijos.getTiempo());
				plazosfijos.setInteres(interes);
				recursoService.crearPlazoFijo(plazosfijos);
			}
		}catch (BusinessException bse) {
			setMsj(bse.getMessage());
			return ERROR;
		} 
		catch (Exception e) {
			e.printStackTrace();
			return ERROR;
		}
		return SUCCESS;
	}

	private Date addDays(Date date, int days) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		cal.add(Calendar.DATE, days); // minus number would decrement the days
		return cal.getTime();
	}

	private Integer SumarInteres(int Tiempo) {
		int interes;
		if (Tiempo >= 90) {
			interes = 13;
		} else {
			if (Tiempo <= 60) {
				interes = 10;
			} else {
				interes = 12;
			}
		}
		return interes;
	}

	public PlazoFijo getModel() {
		plazosfijos.setFechaalta(new Date());
		plazosfijos.setEstado(1);
		return plazosfijos;
	}

	public String getMsj() {
		return msj;
	}

	public void setMsj(String msj) {
		this.msj = msj;
	}
}
